package com.example.userservice.dao;

import com.example.userservice.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户DAO接口（MyBatis映射）
 * 用@Mapper注解，告诉Spring这是MyBatis的映射接口
 */
@Mapper
public interface UserDAO {
    /**
     * 根据ID查用户
     * @param id 用户ID
     * @return 用户实体
     */
    User selectById(@Param("id") Long id);

    /**
     * 查所有用户
     * @return 用户列表
     */
    List<User> selectAll();

    /**
     * 根据用户名模糊查询用户
     * @param name 用户名（模糊匹配）
     * @return 用户列表
     */
    List<User> selectByNameLike(@Param("name") String name);

    /**
     * 新增用户
     * @param user 用户实体
     * @return 影响行数（1表示成功，0表示失败）
     */
    int insert(User user);

    /**
     * 修改用户
     * @param user 用户实体（含ID）
     * @return 影响行数
     */
    int update(User user);

    /**
     * 删除用户
     * @param id 用户ID
     * @return 影响行数
     */
    int deleteById(@Param("id") Long id);
} 